API’s

O que são API’s?

Definição

  • API é a sigla para Application Programming Interface.

  • Analogia com UI.

  • É uma interface de comunicação que um sistema oferece para que outros sistemas acessem suas funções, dados, serviços e recursos.

  • Possibilitam utilizar funções de um aplicativo dentro de outro, facilitando o trabalho dos desenvolvedores.

  • Em particular, permitem o acesso a dados, sem a necessidade de raspagem de superfície (scraping) ou coleta manual.

Tipos de API

API’s privadas

São internas de uma empresa e são usadas apenas para conectar sistemas e dados dentro da empresa.

API’s públicas

São abertas ao público e podem ser usadas por qualquer pessoa.

Pode ou não haver alguma autorização e/ou custo associado a esses tipos de APIs.

API’s de parceiros

Acessíveis apenas por desenvolvedores externos autorizados, em nome de empresas parceiras.

Como funcionam?

Visão geral

  • As APIs funcionam através de um protocolo, um conjunto de instruções, padrões e regras que definem como os sistemas devem se comunicar.

  • Elas estabelecem métodos de requisição, formatos de dados a serem recebidos ou retornados, autenticação e autorização de acesso, entre outros aspectos técnicos.

  • Quando um software utiliza uma API, ele envia uma requisição seguindo as diretrizes estabelecidas pela interface, e em resposta recebe os dados ou realiza as ações desejadas.

Etapas

  1. Uma requisição é enviada ao sistema que disponibiliza uma API (servidor) por um cliente (que pode ser um navegador, um aplicativo móvel ou outro servidor). Geralmente segue o protocolo HTTP (Hypertext Transfer Protocol).

  2. O servidor faz o processamento da requisição, que pode envolver uma consulta a uma base de dados ou acesso a outras funcionalidades.

  3. O servidor envia uma resposta ao cliente. Geralmente inclui um código de status, indicativo de sucesso ou falha na requisição, e os dados solicitados.

Métodos de requisição HTTP

Os principais métodos de requisição são:

  • get: requisição para obter, visualizar ou extrair dados;

  • post: requisição para criar ou enviar novos dados;

  • put: requisição para editar ou atualizar dados;

  • delete: requisição para remover dados.

Requisições e chaves de acesso

  • É comum que alguns sistemas exijam o uso de chaves para limitar e controlar a quantidade de requisições de acesso.

  • Essa medida visa a segurança do próprio sistema, garantindo a sua disponibilidade e evitando por exemplo ataques de negação de serviço (DoS).

Requisições e chaves de acesso

  • Além de ajudar a detectar atividades suspeitas, as chaves de acesso também servem para identificar, monitorar e registrar quem consome a API, a fim de obter insights a respeito dos padrões de uso do serviço e aprimorá-lo.

  • Alguns sistemas monetizam o consumo das API’s.

  • Ainda assim, alguns sistemas permitem que sejam feitas requisições keyless.

Endpoints

  • Endpoints nada mais são do que funções ou recursos da API que, dado sua estrutura hierárquica (aninhada, ou em árvore), podem ser acessadas diretamente pelo sistema cliente.

  • Para acessar um endpoint específico dentro de uma API, basta utilizarmos o URL (Uniform Resource Locator) principal da API seguido do caminho correspondente a esse endpoint.

Endpoints

Placeholders

É comum utilizarmos chaves {} como placeholders ao nos referirmos a endpoints.

Parâmetros de consulta

Podemos, ainda utilizar parâmetros simples de consulta para filtrar os resultados de uma requisição. Ex.:

/usuarios?sexo=masculino

JSON

  • Padrão de indústria

XML

Vantagens

  • Ao fazer uma requisição, os dados retornam em arquivos no formato JSON (Java Script Object Notation)

  • Simplicidade durante o acesso e o armazenamento de diferentes tipos de dados é uma das principais características dos arquivos JSON

  • Esse formato permite a interoperabilidade do formato entre tantos frameworks e linguagens diferentes

  • É facilmente legível tanto por máquinas quanto por humanos

  • Como converter um arquivo .json em tabela?

Desvantagens

Exemplos

Keyless

API OpenAI

asxvfyashcdscwhcix

API Google Maps/Apple WeatherKit

dsvcgfuatfgvyuksev

PokéAPI

szdhfvbcareygkaud